/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.upn.sigemfi.can.beans;

import edu.upn.sigemfi.can.bc.AgenciaDelegate;
import edu.upn.sigemfi.seg.be.Agencia;
import java.util.List;
import javax.faces.model.SelectItem;

/**
 *
 * @author Orlando ( U )
 */
public class AgenciaController extends AbstractController {

    private AgenciaDelegate delegado;
    private Agencia agencia;

    public AgenciaController() {
        delegado = new AgenciaDelegate();

    }

    public List<Agencia> getAgencias() {
        try {
            return delegado.listar();
        } catch (Exception e) {
            error(e.getMessage());
        }
        return null;
    }

    public String nuevo() {
        agencia = new Agencia();
        return "nuevo";
    }

    public String volver() {
        agencia = null;
        return "volver";
    }

    public String registrar() {
        try {
            delegado.crear(agencia);
            info("La agencia se registró correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public String actualizar() {
        try {
            delegado.editar(agencia);
            info("La agencia se actualizó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public String eliminar() {
        try {
            delegado.eliminar(agencia);
            info("La agencia se eliminó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public Agencia buscar(Long codigo) {
        try {
            return delegado.buscar(codigo);
        } catch (Exception e) {
            error(e.getMessage());
        }
        return null;
    }

    public SelectItem[] getAgenciasSI() {
        SelectItem[] select = null;
        try {
            List<Agencia> lista = delegado.listar();
            if (lista != null) {
                select = new SelectItem[lista.size() + 1];
                int i = 0;
                select[i++] = new SelectItem(null, "<<Seleccione una agencia>>");
                for (Agencia a : lista) {
                    select[i++] = new SelectItem(a, a.getNomAgencia());
                }
            } else {
                select = new SelectItem[1];
                select[0] = new SelectItem(null, "<<No existen agencias>>");
            }
        } catch (Exception e) {
            select = new SelectItem[1];
            select[0] = new SelectItem(null, "<<Error al momento de obtener los datos>>");
            error(e.getMessage());
        }
        return select;
    }

    public Agencia getAgencia() {
        return agencia;
    }

    public void setAgencia(Agencia agencia) {
        this.agencia = agencia;
    }
}
